#!/bin/bash
# 定时删除原始数据（精确到秒级）
HOURS_TO_KEEP=48  # 保留48小时
LOG_DIR="/opt/docker_daq/raw"
LOG_FILE="/opt/docker_daq/logs/cleanup.log"

# 计算时间阈值（当前时间 - HOURS_TO_KEEP）
CUTOFF_TIME=$(date -d "${HOURS_TO_KEEP} hours ago" +"%Y-%m-%d %H:%M:%S")

# 统计待删除文件信息
TOTAL_SIZE=$(find "$LOG_DIR" -type f ! -newermt "$CUTOFF_TIME" -name "*.json" -printf "%s\n" | awk '{sum+=$1} END {print sum/1024/1024 " MB"}')
FILE_COUNT=$(find "$LOG_DIR" -type f ! -newermt "$CUTOFF_TIME" -name "*.json" | wc -l)

# 执行删除并记录
DELETED_FILES=$(find "$LOG_DIR" -type f ! -newermt "$CUTOFF_TIME" -name "*.json" -delete -printf "已删除: %f\n" | wc -l)
DELETED_DIRS=$(find "$LOG_DIR" -depth -type d -empty -exec rmdir -v {} \; | wc -l)

# 记录日志
{
    echo "===== $(date '+%Y-%m-%d %H:%M:%S') ====="
    echo "保留时间阈值: ${HOURS_TO_KEEP} 小时（删除早于 ${CUTOFF_TIME} 的文件）"
    echo "待删除文件数: $FILE_COUNT"
    echo "待删除文件总大小: $TOTAL_SIZE"
    echo "实际删除文件数: $DELETED_FILES"
    echo "实际删除空目录数: $DELETED_DIRS"
    echo "----------------------------------------"
} | tee -a "$LOG_FILE"


# 增加文件权限
chmod +x cleanup_raw.sh

# 增加定时任务
crontab -e

# 每天0点执行一次
0 0 * * * /opt/docker_daq/cleanup_raw.sh

# 每天23点59分执行一次
59 23 * * * /opt/docker_daq/cleanup_raw.sh